home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Languages Suite
/
ProgramD2.iso
/
Borland
/
Borland C++ V5.02
/
CTRLBA.PAK
/
CTRLBARS.CPP
< prev
next >
Wrap
C/C++ Source or Header
|
1997-05-06
|
3KB
|
107 lines
// ctrlbars.cpp : Defines the class behaviors for the application.
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992-1995 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and related
// electronic documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.
#include "stdafx.h"
#include <afxpriv.h> // for idle-update windows message
#include "ctrlbars.h"
#include "mainfrm.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCtrlbarsApp
BEGIN_MESSAGE_MAP(CCtrlbarsApp, CWinApp)
//{{AFX_MSG_MAP(CCtrlbarsApp)
ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCtrlbarsApp construction
CCtrlbarsApp::CCtrlbarsApp()
{
// Place all significant initialization in InitInstance
}
/////////////////////////////////////////////////////////////////////////////
// The one and only CCtrlbarsApp object
CCtrlbarsApp NEAR theApp;
/////////////////////////////////////////////////////////////////////////////
// CCtrlbarsApp initialization
BOOL CCtrlbarsApp::InitInstance()
{
// Standard initialization
Enable3dControls(); // use 3d controls in dialogs
// create a new SDI main frame window
CFrameWnd* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
pMainFrame->ShowWindow(m_nCmdShow);
pMainFrame->UpdateWindow();
m_pMainWnd = pMainFrame;
pMainFrame->SendMessage(WM_COMMAND, IDM_VIEWPALETTE, (LPARAM)0);
return TRUE;
}
// In this override of OnIdle we are doing UI for our app.
// Since this needs to be as fast as possible to give the user
// the best result we do our updates first when lCount is zero
// then we call the library to do its work.
BOOL CCtrlbarsApp::OnIdle(LONG lCount)
{
if (lCount == 0)
{
ASSERT(m_pMainWnd != NULL);
// look for any top-level windows owned by us
// we use 'HWND's to avoid generation of too many temporary CWnds
for (HWND hWnd = ::GetWindow(m_pMainWnd->m_hWnd, GW_HWNDFIRST);
hWnd != NULL; hWnd = ::GetNextWindow(hWnd, GW_HWNDNEXT))
{
if (::GetParent(hWnd) == m_pMainWnd->m_hWnd)
{
// if owned window is active, move the activation to the
// application window
if (GetActiveWindow() == hWnd && (::GetCapture() == NULL))
m_pMainWnd->SetActiveWindow();
// also update the buttons for the top-level window
SendMessage(hWnd, WM_IDLEUPDATECMDUI, (WPARAM)TRUE, 0L);
}
}
}
return CWinApp::OnIdle(lCount);
}
/////////////////////////////////////////////////////////////////////////////
// CCtrlbarsApp commands
void CCtrlbarsApp::OnAppAbout()
{
CDialog(IDD_ABOUTBOX).DoModal();
}
/////////////////////////////////////////////////////////////////////////////